#ifndef SRC_CLIENT_SIMULATOR_CONFIG_H_
#define SRC_CLIENT_SIMULATOR_CONFIG_H_

#include <vector>
#include "base/noncopyable.hpp"

class Config : public noncopyable,
  public std::enable_shared_from_this<Config> {
 public:
  typedef std::shared_ptr<Config> Ptr;
  Config();
  virtual ~Config();

 public:
  struct PDNS {
    std::string ip;
    int port;
  };

  struct Device {
    std::string sn;
    std::string name;
  };

 public:
  bool Parse(const std::string &filename);

  PDNS pdns() const;

  int duration_seconds() const;

  std::vector<Device> devices() const;

 private:
  PDNS pdns_;
  int duration_seconds_;
  std::vector<Device> devices_;
};

#endif  // SRC_CLIENT_SIMULATOR_CONFIG_H_
